<?php 
namespace app\home\controller;
use think\Controller;
/**
* 下载页面控制器
*/
class Download extends Common
{
	
	public function index(){
		$resources=db('resources')->paginate(10);
		$this->assign('resources',$resources);
		return $this->fetch('download');
	}
	public function download($id){
		if ($id=='') {
			$this->redirect('download','index','APP_NAME',1);
		}
		$result=db('resources')->find($id);
		$filePath = realpath($result['path']);//文件路径
		$fp = fopen($filePath,'r');//打开文件
	    if(!$filePath || !$fp){
	        header('HTTP/1.1 404 Not Found');
	        echo "Error: 404 Not Found.(server file path error)<!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding --><!-- Padding -->";
	        exit;
	    }
		$file_name=$result['title'].'.'. pathinfo($result['path'],PATHINFO_EXTENSION); //文件名
		$encoded_name=iconv("utf-8","gb2312",$file_name);//编码转化
		Header("Content-type: application/octet-stream");//文件类型
		Header("Content-Disposition: attachment;filename=".$file_name); //对待附件的形式来对待filename是文件名
		header('HTTP/1.1 200 OK');
	    header( "Pragma: public" );
	    header( "Expires: 0" );
	    header("Accept-Ranges: bytes");// 文件大小的的单位
	    header("Accept-Length: ".filesize($filePath));//文件大小
		$ua = $_SERVER["HTTP_USER_AGENT"];
		 if (preg_match("/MSIE/", $ua)) {
       		 header('Content-Disposition: attachment; filename="' . $encoded_name . '"');
	    } else if (preg_match("/Firefox/", $ua)) {
	        header('Content-Disposition: attachment; filename*="utf8\'\'' . $file_name . '"');
	    } else {
	        header('Content-Disposition: attachment; filename="' . $file_name . '"');
	    }
    
		  // ob_end_clean(); //有些情况可能需要调用此函数
		    // 输出文件内容
	    fpassthru($fp);
	    exit;
	}

}